docs(discovery): cover Create/Read/Supersede in Gherkin — close COH-012, GAP-016 - #106
Merged
Merged
Conversation
…12, GAP-016 COH-012 asked for the two missing CRUD operations. Nine scenarios added across three Features: Create (type derivation for 0/1/2/7 products against InitiativeScope.Derive, the Initiative.TenantRequired guard, ConsolidateFrom lineage), Read (own-tenant hit; other-tenant read returning exactly what a non-existent id returns) and withdrawal. The row's premise is corrected, not obeyed. There is no Delete in this aggregate and there must not be: an initiative is superseded into another (Supersede -> consolidated, BR-DIS-005) because its lineage is governance evidence. A Scenario: Delete would have satisfied the row, satisfied the probe that was watching for exactly that string, and described a system that does not exist. The COH-012 entry is withdrawn from falsifiable-claims.json with that reason recorded in the file rather than deleted silently — a probe inherits whatever its row assumed, and a row can assume something false. Constants in the scenarios were read from the code, not guessed: TENANT_WIDE, SINGLE_PRODUCT, CROSS_PRODUCT, consolidated, Initiative.TenantRequired, Initiative.NotConsolidatable. GAP-016 was stale. The roadmap has carried Document Status: SUPERSEDED since it was corrected, and the marker cites this row by id. Note on coverage: with COH-012 withdrawn and GAP-022 resolved, the falsifiable-claim guard now probes ZERO claims and says so on every run. That is the guard working as designed, not a pass.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
COH-012 — nine scenarios, and one corrected premise
Three new Features in
docs/design/discovery-functional-specs.md: Create (type derivation for 0/1/2/7 products againstInitiativeScope.Derive, theInitiative.TenantRequiredguard,ConsolidateFromlineage), Read (own-tenant hit; other-tenant read returning exactly what a non-existent id returns, so the id is never confirmed), and withdrawal.The row asked for a
Deletescenario. There is no Delete in this aggregate and there must not be. An initiative is superseded into another (Supersede→consolidated, BR-DIS-005) because its lineage is governance evidence. WritingScenario: Deletewould have satisfied the row, satisfied the probe that was literally watching for that string, and described a system that does not exist.So the COH-012 entry is withdrawn from
falsifiable-claims.json, with the reason recorded in the file rather than deleted quietly. A probe inherits whatever its row assumed, and a row can assume something false — that is worth keeping written down.Every constant was read from the code, not guessed:
TENANT_WIDE,SINGLE_PRODUCT,CROSS_PRODUCT,consolidated,Initiative.TenantRequired,Initiative.NotConsolidatable.GAP-016 — stale
tracker-implementation-roadmap.mdhas carriedDocument Status: SUPERSEDED — historical NestJS-era draftsince it was corrected, and the marker cites this row by id. The roadmap planned a NestJS build that was executed in .NET.Coverage, stated plainly
With COH-012 withdrawn and GAP-022 resolved, the falsifiable-claim guard now probes zero claims and prints that on every run. Neither remaining open row is machine-falsifiable (GAP-025 needs judgement about which four contexts; GAP-023 is about five decisions awaiting PO ratification). Padding the file to keep a number up would defeat its purpose.
Board: 2 OPEN, 1 DEFERRED, 104 RESOLVED (107 ids before and after).
🤖 Generated with Claude Code